package com.ruoyi.system.service.standard.impl;

import java.util.List;

import com.ruoyi.common.annotation.DataScope;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.standard.StandardISOMapper;
import com.ruoyi.system.domain.standard_relevant.StandardISO;
import com.ruoyi.system.service.standard.IStandardISOService;

/**
 * ISO 标准结构Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-07-08
 */
@Service
public class StandardISOServiceImpl implements IStandardISOService 
{
    @Autowired
    private StandardISOMapper standardISOMapper;

    /**
     * 查询ISO 标准结构
     * 
     * @param id ISO 标准结构主键
     * @return ISO 标准结构
     */
    @Override
    public StandardISO selectStandardISOById(Long id)
    {
        return standardISOMapper.selectStandardISOById(id);
    }

    /**
     * 查询ISO 标准结构列表
     * 
     * @param standardISO ISO 标准结构
     * @return ISO 标准结构
     */
    @Override
    public List<StandardISO> selectStandardISOList(StandardISO standardISO)
    {
        return standardISOMapper.selectStandardISOList(standardISO);
    }

    /**
     * 新增ISO 标准结构
     * 
     * @param standardISO ISO 标准结构
     * @return 结果
     */
    @Override
    public int insertStandardISO(StandardISO standardISO)
    {
        return standardISOMapper.insertStandardISO(standardISO);
    }



    /**
     * 批量删除ISO 标准结构
     * 
     * @param ids 需要删除的ISO 标准结构主键
     * @return 结果
     */
    @Override
    public int deleteStandardISOByIds(Long[] ids)
    {
        return standardISOMapper.deleteStandardISOByIds(ids);
    }

    /**
     * 删除ISO 标准结构信息
     * 
     * @param id ISO 标准结构主键
     * @return 结果
     */
    @Override
    public int deleteStandardISOById(Long id)
    {
        return standardISOMapper.deleteStandardISOById(id);
    }

    /**
     *--------------------------------------------------------
     */

    /**
     * 找到指定的ISO 标准 By Code
     * @param standardCode
     */
    @Override
    public StandardISO selectStandardISOByCode(String standardCode) {
        return standardISOMapper.selectStandardISOByCode(standardCode);
    }
    /**
     * 修改ISO 标准结构
     *
     * @param standardISO ISO 标准结构
     * @return 结果
     */
    @Override
    public int updateStandardISO(StandardISO standardISO)
    {
        return standardISOMapper.updateStandardISO(standardISO);
    }

    /**
     * 添加或更新ISO 标准结构
     *
     * @param standardISO ISO 标准结构
     * @return 结果
     */
    @Override
    public int addOrUpdateStandardISO(StandardISO standardISO) {
        // 先检查是否存在该标准
        StandardISO existing = selectStandardISOByCode(standardISO.getStandardCode());
        if (existing == null) {
            // 如果不存在，则新增
            return insertStandardISO(standardISO);
        } else {
            // 如果存在，则更新
            standardISO.setId(existing.getId()); // 确保ID正确
            return updateStandardISO(standardISO);
        }
    }

    /**
     * 删除ISO by code
     */
    @Override
    public int deleteStandardISOByCode(String standardCode){
        return standardISOMapper.deleteStandardISOByCode(standardCode);
    }
}
